home *** CD-ROM | disk | FTP | other *** search
/ GameStar 1998 November (Bonus) / GAMESTAR11B.ISO / ENCYC99 / MM / T620273A.DCR / scripts_41_Class Scrollbar.ls < prev    next >
Encoding:
Text File  |  1998-07-02  |  3.7 KB  |  120 lines

  1. property internalCursorGod, UpButton, DownButton, Slider, ScrolledThing, ScrollButtonGod, backgroundSprite, objectRect, cursorGod, mouseIsDown, objectHidden, savedMember
  2.  
  3. on areYouThere me, xLoc
  4.   if objectHidden then
  5.     return 0
  6.   end if
  7.   if inside(xLoc, objectRect) then
  8.     areYouThere(internalCursorGod, xLoc)
  9.     return 1
  10.   else
  11.     if mouseIsDown then
  12.       return areYouThere(internalCursorGod, xLoc)
  13.     end if
  14.   end if
  15.   areYouThere(internalCursorGod, xLoc)
  16.   return 0
  17. end
  18.  
  19. on mouseEvent me, xEvent, xLoc
  20.   case xEvent of
  21.     #mouseEnter:
  22.       turnON(ScrolledThing)
  23.       turnON(Slider)
  24.     #mouseDown:
  25.       set mouseIsDown to 1
  26.     #mouseUp:
  27.       set mouseIsDown to 0
  28.     #mouseGone:
  29.       turnOff(ScrolledThing)
  30.       turnOff(Slider)
  31.       set mouseIsDown to 0
  32.   end case
  33. end
  34.  
  35. on newMember me, xMember
  36.   if changeScrolledMember(ScrolledThing, xMember) then
  37.     reveal(me)
  38.   else
  39.     hide(me)
  40.   end if
  41. end
  42.  
  43. on hide me
  44.   set objectHidden to 1
  45.   hide(UpButton)
  46.   hide(DownButton)
  47.   hide(Slider)
  48.   set the visible of sprite backgroundSprite to 0
  49. end
  50.  
  51. on reveal me
  52.   set objectHidden to 0
  53.   reveal(UpButton)
  54.   reveal(DownButton)
  55.   reveal(Slider)
  56.   set the visible of sprite backgroundSprite to 1
  57. end
  58.  
  59. on cleanUp me
  60.   newMember(me, savedMember)
  61.   unsubscribe(me)
  62. end
  63.  
  64. on new me, styleString, xBackGround, xUpSprite, xDownSprite, xGrabberSprite, xScrolledSprite, xLineHeight
  65.   set backgroundSprite to xBackGround
  66.   puppetSprite(backgroundSprite, 1)
  67.   set UpButton to new(script "Class PushyPictButton", xUpSprite)
  68.   set DownButton to new(script "Class PushyPictButton", xDownSprite)
  69.   set upPictList to initUpPicts(me, styleString)
  70.   set downPictList to initDownPicts(me, styleString)
  71.   setPicts(UpButton, upPictList)
  72.   setPicts(DownButton, downPictList)
  73.   set ScrollButtonGod to new(script "Class ScrollButtonGod")
  74.   linkUp(ScrollButtonGod, UpButton, DownButton)
  75.   set sliderRect to rect(the left of sprite xUpSprite, the bottom of sprite xUpSprite - 1, the right of sprite xUpSprite, the top of sprite xDownSprite + 1)
  76.   set grabberOn to member (styleString && "GrabberOn")
  77.   set grabberOff to member (styleString && "GrabberOff")
  78.   set Slider to new(script "Class VerticalSlider", sliderRect, xGrabberSprite, grabberOn, grabberOff)
  79.   set pageHeight to the bottom of sprite xDownSprite - the top of sprite xUpSprite
  80.   set ScrolledThing to new(script "Class ScrolledThing", xScrolledSprite, xLineHeight, pageHeight, the bottom of sprite xDownSprite)
  81.   set savedMember to the member of sprite xScrolledSprite
  82.   linkUp(UpButton, ScrolledThing, #scrollUp, #overUp, #overNone)
  83.   linkUp(DownButton, ScrolledThing, #scrollDown, #overDown, #overNone)
  84.   if linkUp(ScrolledThing, ScrollButtonGod, Slider) then
  85.     reveal(me)
  86.   else
  87.     hide(me)
  88.   end if
  89.   linkUp(Slider, ScrolledThing)
  90.   set internalCursorGod to new(script "Class CursorGod")
  91.   subscribe(UpButton, internalCursorGod)
  92.   subscribe(DownButton, internalCursorGod)
  93.   subscribe(Slider, internalCursorGod)
  94.   set objectRect to rect(the left of sprite xUpSprite, the top of sprite xUpSprite, the right of sprite xUpSprite, the bottom of sprite xDownSprite)
  95.   return me
  96. end
  97.  
  98. on subscribe me, xCursor
  99.   set cursorGod to xCursor
  100.   subscribe(cursorGod, me)
  101. end
  102.  
  103. on unsubscribe me
  104.   unsubscribe(cursorGod, me)
  105. end
  106.  
  107. on initUpPicts me, xString
  108.   set upMember to member (xString && "UpButtonUp")
  109.   set downMember to member (xString && "UpButtonDown")
  110.   set offMember to member (xString && "UpButtonOff")
  111.   return [upMember, upMember, downMember, offMember]
  112. end
  113.  
  114. on initDownPicts me, xString
  115.   set upMember to member (xString && "DownButtonUp")
  116.   set downMember to member (xString && "DownButtonDown")
  117.   set offMember to member (xString && "DownButtonOff")
  118.   return [upMember, upMember, downMember, offMember]
  119. end
  120.